﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SchoolManagementSystem.Controls;
using CoreData;
using Helper;
namespace SchoolManagementSystem.Details
{
    public partial class Student_Status_UC : DetailUC
    {
        public int type;
        public Student_Status_UC(int type)
        {
            InitializeComponent();
            this.type = type;
            if (type == 1)
            {
                this.ObjectName = "trạng thái học viên";
                 this.Code ="StudentStatus";
            }
            if (type == 2)
            {
                this.ObjectName = "trạng thái học viên tiềm năng";
                this.Code = "TempStudentStatus";
            }
            this.Type = new Student_Status();
        }


        protected override long DetailDisplay()
        {
            Student_Status data = new Student_Status();
            if (ID > 0)
            {
                data = (Student_Status)RegisterService.RegisterServices.StudentStatusService.GetByID(ID);

            }

            txtname.Text = data.Name;
            txtnote.Text = data.Description;
            txtcode.Text = data.Code;
            if (!String.IsNullOrEmpty(data.ColorText))
                colorPickEdit_color.Color = Color.FromArgb(ConvertObject.ToInt(data.ColorText));// (data.ColorText);
            else
                colorPickEdit_color.Color = Color.White;//
            ckactive.Checked = data.Active;

            return ID;

        }

        protected override long Save()
        {
            Student_Status data = new Student_Status();
            if (ID > 0)
            {
                data = (Student_Status)RegisterService.RegisterServices.StudentStatusService.GetByID(ID);

            }
            data.Code = txtname.Text;
            data.Name = txtname.Text;
            data.Description = txtnote.Text;
            data.Active = ckactive.Checked;
            data.Type = type;
            data.ColorText = colorPickEdit_color.Color.ToArgb().ToString();
            ID = RegisterService.RegisterServices.StudentStatusService.Save(data,ref ErrorMess);

            return ID;
        }


        public override bool Delete(long SelectedID)
        {
            if (SelectedID == 3 || SelectedID == 2 || SelectedID == 5 || SelectedID == 4 || SelectedID == 8
                || SelectedID == 9 || SelectedID == 10)
            {
                MessageControl.ShowMessage("Không thể xóa dữ liệu mặt định", "Nhắc nhở", MessageControl.Icon.Error);
                return false;
            }

            var checkStudent = RegisterService.RegisterServices.StudentService.GetByStatusID(SelectedID);

            var checkTempStudent = RegisterService.RegisterServices.TempStudentService.GetByStatusID(SelectedID);

            if (checkStudent != null)
            {
                ErrorMess = "Hiện có học viên đang sử dụng trạng thái này, vui lòng chuyển trạng thái khác trước khi xóa";
                return false;
            }
            if (checkTempStudent != null)
            {
                ErrorMess = "Hiện có học viên tiềm năng đang sử dụng trạng thái này, vui lòng chuyển trạng thái khác trước khi xóa";
                return false;
            }
            return RegisterService.RegisterServices.StudentStatusService.UpdateIsDelete(RegisterService.RegisterServices.StudentStatusService.GetByID(SelectedID));

        }

        private void Student_Status_UC_Load(object sender, EventArgs e)
        {
            AddTextChanged(this.groupControl1.Controls);
        }
    }
}
